Business organizations managing large amounts of data assets have turned to storage virtualization systems to provide a scaleable way to monitor, optimize and manage files on network attached storage (“NAS”) systems. NAS separates data storage from the client computer, and enables the administrator to centrally manage data files without having to access individual client computers. Users may access their primary NAS system over a network using a file path or domain address for their respective account directories. Using this path address, the users may also save files to storage devices attached to the NAS system. Additionally, files may be archived from the NAS system, preventing complications from having more updated files reside on user client computers.
As an organization's NAS system grows and reaches capacity, an administrator may implement storage virtualization to manage the NAS system. A storage virtualization system complements and increases the efficiency of the NAS system without disrupting the users. For example, to prevent data overflow on the NAS system, or to optimize NAS resources, the storage virtualization system may migrate or copy files from the primary NAS system to a secondary NAS system. To ensure seamless and transparent compatibility, the secondary NAS system may be designed to be as similar to the primary NAS system as possible.
The storage virtualization system may act as an intermediary between the client computer and the primary NAS system, permitting synchronization, migration or re-direction of data files to the secondary NAS system without impacting or involving the user. The storage virtualization system may be transparent such that NAS system users are not even aware that their files are being synchronized, migrated or re-directed to a secondary NAS system. In some instances, users may even access files using the same path address to the primary NAS system, but this address may be a logical or symbolic address that leads the user to the actual location of the file on the secondary NAS system.
A storage virtualization system may monitor data usage and flow to the NAS system, and may assess where the most effective storage of data may be. It may institute automated data migration services or it may operate under criteria set by the administrator. In order to ensure consistent and efficient data optimization, the storage virtualization must have complete access to files on the primary NAS system. Without this access, the storage virtualization system will not be able to accomplish its designated tasks.
One skilled in the relevant art will recognize that different NAS systems may use different file system protocols. For example, a NAS system may use the the Network File System (“NFS”) protocol and another NAS system might use the Common Internet File System protocol (“CIFS”) (formerly Server Message Block (“SMB”) protocol). Each protocol has its own conventions and syntax that may restrict the ability to transfer files from one file system to the other. In most instances, data files from NFS NAS systems can only be copied or moved to other NFS NAS systems, and data files from CIFS NAS systems can only be copied or moved to other CIFS-NAS systems. Similarly, a storage virtualization system will typically only perform NFS-compatible requests when working with NFS NAS systems, and CIFS-compatible requests when working with CIFS NAS systems. A storage virtualization system may possess the ability to work with both NFS and CIFS systems, but may be restricted to only use one protocol at a time.
One skilled in the art will recognized that even despite the NFS or CIFS protocol, a NAS system vendor may apply conventions unique to its products. For example, one known difference between NFS and CIFS file systems involves file attributes, or metadata, associated with individual files. NFS file systems cannot see, use or list some file attributes that are openly recognized by CIFS systems. Similarly, some CIFS systems cannot see, use or list some file attributes that are openly recognized by NFS system. Nevertheless, despite this difference, some client computers and even some NAS systems still associate these incompatible file attributes with all its stored files, regardless if the file is stored on a NFS or CIFS NAS system. This may be a practice of the NAS system vendor. While this may not present any issues when an organization uses NAS systems from only that vendor, it is more common that the organization will use NAS systems from multiple vendors. Further, the use of incompatible file attributes may make it difficult or impossible for a storage virtualization system to migrate files with these file attributes.
One instance where incompatible file attributes create problems for storage virtualization occurs when a file has been archived. For example, in one type of NAS system, the NAS system will periodically archive files from the primary NAS system to a separate archive server. This may be under the direction of a user, administrator, or part of an automated archive process. When a user tries to access an archived file, he will notice that the file content is no longer on the primary NAS system. Rather, what will be left is a “stub file” that soft links or provides the path address to the archived file content. In some instances, the stub file will appear to be accessible on the primary NAS system, but there may be an indicator, icon or other attribute that shows that the file content is no longer online with the primary NAS system. For example, the file icon may appear to have a clock next to it. In another example, checking the file's properties will reveal that the “offline” attribute check box is selected. In a further example, an offline attribute may be directly associated with the stub file. The offline attribute may be a single-bit indicator or other small sequence of data associated with the stub file, and may simply be a notation that indicates the content of the file has been archived to another location. Since the offline attribute may simply be an indicator, it will not contain information that points to the actual location of the file's content. Rather, this information may form part of the stub file.
A storage virtualization system tasked with migrating files from a primary NAS system to a secondary NAS system may not be compatible with the offline attribute convention present in some NAS systems. As such, the storage virtualization system may migrate the stub file, but will lose the offline attribute indicator. Alternatively, the storage virtualization system may ignore the stub file and not migrate the data at all. In some instances, the storage virtualization system may migrate the stub file, but lose or be unable to access the path address to the archived file content. The result is that the migrated stub file will no longer be linked to its content, resulting in data loss or a failed data migration. What is therefore needed is a way to access and preserve the associated metadata attributes for files common to certain NAS systems to ensure that if these files are migrated, the user will be able to access the migrated file and the content associated with that migrated file.